<?php

namespace Maestros\Model\Dao;

use Zend\Db\Adapter\Adapter;
use Zend\Db\Sql\Sql;
use Maestros\Model\Dao\GenericDAO;

class CuposSeccionDAO extends GenericDAO {

    protected $dbAdapter;

    /**
     * Nombre de la Tabla
     * @var type String
     */
    protected $tabla = 'cupos_seccion';
    private static $cuposSeccionDAO;

    /**
     * Configura Adaptador de Base de Datos
     * 
     * @param \Zend\Db\Adapter\Adapter $adapter
     */
    private function __construct(Adapter $adapter) {
        $this->dbAdapter = $adapter;
    }

    /**
     * 
     * @param type $adapter
     * @return instancia de CuposSeccionDAO
     * Patron singleton
     */
    public static function getInstance($adapter) {
        if (self::$cuposSeccionDAO == null) {
            self::$cuposSeccionDAO = new CuposSeccionDAO($adapter);
        }
        return self::$cuposSeccionDAO;
    }

    public function getRegistro($id) {
        return $this->getRegistroGeneral($id, $this->tabla, $this->dbAdapter);
    }

    public function updateCuposSeccionActualizar($id, $accion, $cantidad_inscritos) {
        $sql = new Sql($this->dbAdapter);
        $update = $sql->update();
        $update->table($this->tabla);
        if ($accion == 1) {
            $update->set(array('cantidad_inscritos' => $cantidad_inscritos + 1));
        } else {
            $update->set(array('cantidad_inscritos' => $cantidad_inscritos - 1));
        }
        $update->where("id=" . $id);
        $statement = $sql->prepareStatementForSqlObject($update);
        if ($statement->execute()) {
            return true;
        } else {
            return false;
        }
    }

}
